\chapter{Description des services attendus}
\label{chap:desc.services.attendus}
\minitoc


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\section{JASMINe}
\label{sec:desc.services.attendus}

%-------------------------------------%

\subsection{Rappel de l'existant}
\label{subsec:desc.services.attendus.jasmine}

Le projet JASMINe\footnote{http://jasmine.ow2.org} r\'epond au probl\`eme
actuel de la complexit\'e croissante dans les architectures informatiques des 
entreprises. Le mod\`ele N-tiers, Java EE et les machines virtuelles JAVA, les multiples instances
d'une grappe augmentent consid\'erablement le nombre d'entit\'es logicielles \`a
administrer et le nombre d'\'ev\'enements \`a observer dans le syst\`eme global.


En effet, les clusters Java EE sont de plus en plus utilis\'es dans les syst\`emes 
d'information d'entreprise afin de satisfaire les contraintes de disponibilit\'e ou de 
passage \`a l'\'echelle, par exemple. Ainsi, on retrouve des structures distribu\'ees 
complexifi\'ees qui n\'ecessitent de nouveaux outils de monitoring et d'administration. 
La multiplicit\'e des couches et des composants de tels syst\`emes rend l'administration 
manuelle tr\`es difficile, voire impossible dans l'optique du respect de contraintes comme 
l'identification et le tra\c{c}age des probl\`emes et des performances.


C'est ce que propose JASMINe, qui est une collection d'outils travaillant main dans la main, 
destin\'es \`a simplifier le travail d'administration des plateformes SOA, et de JOnAS en particulier.


%-------------------------------------%

\subsection{But du nouveau logiciel}
Le travail de notre \'equipe s'int\`egrera au sein du module JASMINe Monitoring.
Il consistera \`a sp\'ecifier, impl\'ementer et int\'egrer un nouveau module de
gestion des notifications dans l'outil JASMINe monitoring.
Les notifications seront d\'eclench\'ees par le moteur de r\`egles open source Drools et persist\'ees en
base de donn\'ees. Un workflow humain permettra de g\'erer le cycle de vie de la notification et ses
interactions avec l'op\'erateur : 
\begin{bulletList}
 \item g\'erer les r\`egles;
 \item visualiser les messages de notification;
 \item acquitter les notifications.
\end{bulletList}

Pour d\'efinir les fonctions du nouveau module \`a r\'ealiser, 
il est necessaire de  comprendre la structure de JASMINe Monitoring.
Celle-ci est d\'ecrite dans la section 2.1.2 du document Cahier des Charges.
Des \'etapes pr\'eliminaires necessaires pour r\'ealiser ce nouveau module 
sont aussi d\'ecrites dans le Cahier des charges, dans la section 3.1.

%-------------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Description des nouveaux modules de JASMINe EoS}

La console web JASMINe est une console ``\`a la carte'' nomm\'ee EoS. Elle comporte un ensemble configurable de modules. 
On peut citer par exemple ``Monitoring``, ``Notifications'', ``Autonomous'' etc.
La console JASMINe EoS repose sur le socle Kerneos (cit\'e parmi les pr\'eliminaires)
permettant la composition de modules et leurs chargements dynamiques.

On pourra d\'elivrer des profiles de ces consoles ou les composer sur mesure. Parmi les profiles pr\'e-d\'efinis :
\begin{bulletList}
 \item full (tous les modules disponibles);
 \item JASMINe Monitoring;
 \item JASMINe Monitoring + Autonomous etc.
\end{bulletList}

Les modules qu'on doit \'elaborer sont :
\begin{itemize}
 \item L'\'editeur des notifications
 \item Le module de visualisation des notifications
\end{itemize}


%-------------------------------------%
\subsection{\'Edition des notifications}
L'administrateur d\'efinira des r\`egles qui seront d\'eclench\'ees quand l'ensemble des conditions est atteint.
Pour cela, un module doit fournir une interface guid\'ee pour \'editer des r\`egles Drools 
pour les notifications, en respectant les crit\`eres suivants:
\begin{description}
    \item[Ind\'ependance du niveau technique de l'utilisateur.] Le d\'ebutant comme l'utilisateur avanc\'e connaissant la syntaxe Drools doivent pouvoir \'editer des r\`egles pour les notifications de mani\`ere efficace.
    \item[Adaptation aux besoins.] L'\'editeur doit proposer une suite d'actions sp\'ecifiques pour la notion de \textit{notification}.
    \item[Non restrictif.] L'\'editeur ne doit pas limiter le champ des possibilit\'es offertes par le langage de r\`egles Drools. On laissera donc simplement l'acc\`es \`a un mode compl\`etement textuel (qui sera r\'ealis\'e par un autre stagiaire de l'\'equipe).
    \item[G\'en\'ericit\'e.] Le c\oe ur de l'\'editeur ne doit pas \^etre sp\'ecifique \`a JASMINe/JOnAS.
\end{description}
%-------------------------------------%
\subsection{Visualisation et gestion des notifications}
Ce module doit fournir une interface de visualitation et gestion des notifications en respectant les crit\`eres suivants:
\begin{description}
    \item[Ergonomique et plastique.] Les consoles web sont une ``vitrine'' pour le projet JASMINe.
    \item[Vision d'ensemble.] La console doit apporter une vision claire des informations offertes par une notification
ainsi que pour les probl\`emes signal\'es par cette notification.
    \item[Action imm\'ediate.] L'interface doit permettre l'acquittement des notifications. L'administrateur peut aussi introduire ses propres
informations \`a l'heure de l'acquittement. 
\end{description}

%-------------------------------------%

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\section{Contexte de l'utilisation}

\subsection{Types d'utilisateurs}
Les utilisateurs de ce logiciel seront, dans un premier temps, des personnes avec une forte
culture technique et, plus pr\'ecis\'ement, les informaticiens et les administrateurs travaillant pour 
l'administration des clusters de serveurs.
Cependant, il est \`a noter que ce logiciel peut \^etre utilis\'e par des gens qui connaissent le langage Drools et 
par cons\'equent par des gens qui poss\`edent suffisamment de connaissances en programmation.
Donc le logiciel doit fournir une certaine flexibilit\'e pour s'adapter aux besoins des differents niveaux 
d'utilisateurs.

\subsection{Contexte materiel}

Le logiciel est ind\'ependant au niveau du mat\'eriel. Cependant, la configuration mat\'erielle minimum
recommand\'ee par Adobe sur le site officiel de Flash Player est un processeur de 800 MHz avec une m\'emoire
RAM de 512 MB et une m\'emoire vid\'eo de 128 MB.

Cette configuration est minimale. Pour un bon fonctionement, la configuration recommand\'ee est un 
processeur Intel Pentium 4 \`a 2.33GHz ou AMD Athlon 64 2800+ (ou equivalent) avec 
512MB de RAM pour une r\'esolution vid\'eo de 852x480.

\subsection{Contexte logiciel}
Du cot\'e client, le logiciel tourne dans un browser web (il est test\'e avec Firefox et Opera). 
L'utilisateur a besoin de Flash Player (version 9.0 ou sup\'erieure).




% Un peu de code :
% \begin{lstlisting}[language=Java]

% package org.ow2.jasmine.monitoring.installer;

% public class Main {
	
% public static void main(String[] args) {
        
%         new GenerateDP(args);
% 		//new GenerateDP();
%         /*for (String s : args)
%         	System.out.println("Arg "+s);*/
%         new GenerateES(args);
    	
%     }

% }

% \end{lstlisting}




%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%end chapter2.tex